Θέλω να διαγράψω ένα υποκατάστημα τόσο τοπικά όσο και απομακρυσμένα. Αποτυχημένες προσπάθειες διαγραφής απομακρυσμένου κλάδου $ git branch -d remotes / origin / bugfix σφάλμα: δεν βρέθηκε ο κλάδος "remotes / origin / bugfix". $ git branch -d origin / bugfix σφάλμα: δεν βρέθηκε ο κλάδος "origin / bugfix". $ git branch -rd origin / bugfix Διαγράφηκε απομακρυσμένη προέλευση κλάδου / διόρθωση σφαλμάτων (ήταν 2a14ef7). $ git ώθηση Τα πάντα ενημερωμένα $ git τραβήξτε Από το github.com:gituser/gitproject * [new branch] bugfix -> origin / bugfix Ήδη ενημερωμένο. Τι πρέπει να κάνω διαφορετικά για να διαγράψω επιτυχώς τον κλάδο των τηλεχειριστηρίων / origin / bugfix τόσο τοπικά όσο και απομακρυσμένα;
2020-12-07 13:11:45
1 2 Επόμενο Περίληψη των κυριότερων σημείων $ git push -d$ git branch -d Σημειώστε ότι στις περισσότερες περιπτώσεις το απομακρυσμένο όνομα είναι προέλευσης. Σε μια τέτοια περίπτωση θα πρέπει να χρησιμοποιήσετε την εντολή έτσι. $ git push -d origin Διαγραφή τοπικού υποκαταστήματος Για να διαγράψετε το τοπικό υποκατάστημα χρησιμοποιήστε ένα από τα ακόλουθα: $ git branch -d branch_name $ git branch -D branch_name Σημείωση: Η επιλογή -d είναι ένα ψευδώνυμο για το --delete, το οποίο διαγράφει τον κλάδο μόνο εάν έχει ήδη συγχωνευθεί πλήρως στον ανάντη κλάδο του. Θα μπορούσατε επίσης να χρησιμοποιήσετε το -D, το οποίο είναι ένα ψευδώνυμο για το --delete --force, το οποίο διαγράφει τον κλάδο "ανεξάρτητα από τη συγχωνευμένη κατάστασή του." [Πηγή: man git-branch] Σημειώστε επίσης ότι το git branch -d branch_name θα αποτύχει εάν είστε αυτήν τη στιγμή στον κλάδο που θέλετε να καταργήσετε. Το μήνυμα ξεκινά με σφάλμα: Δεν είναι δυνατή η διαγραφή του κλάδου "branch_name". Εάν ναι, πρώτα αλλάξτε σε κάποιο άλλο υποκατάστημα, για παράδειγμα: git checkout master. Διαγραφή απομακρυσμένου υποκαταστήματος [Ενημερώθηκε στις 8-Σεπ-2017] Από το Git v1.7.0, μπορείτε να διαγράψετε έναν απομακρυσμένο κλάδο χρησιμοποιώντας $ git push --διαγραφή που μπορεί να είναι πιο εύκολο να το θυμάστε $ git push : που προστέθηκε στο Git v1.5.0 "για να διαγράψετε έναν απομακρυσμένο κλάδο ή μια ετικέτα." Ξεκινώντας από το Git v2.8.0 μπορείτε επίσης να χρησιμοποιήσετε το git push με την επιλογή -d ως ψευδώνυμο για το --delete. Επομένως, η έκδοση του Git που έχετε εγκαταστήσει θα υπαγορεύσει εάν πρέπει να χρησιμοποιήσετε την ευκολότερη ή πιο δύσκολη σύνταξη. Διαγραφή απομακρυσμένου υποκαταστήματος [Αρχική απάντηση από 5 Ιανουαρίου 2010] Από το Κεφάλαιο 3 του Pro Git από τον Scott Chacon: Διαγραφή απομακρυσμένων κλάδων Ας υποθέσουμε ότι έχετε τελειώσει με ένα απομακρυσμένο υποκατάστημα - ας πούμε, εσείς και οι συνεργάτες σας έχετε τελειώσει με μια λειτουργία και τη έχετε συγχωνεύσει στον κύριο κλάδο του τηλεχειριστηρίου σας (ή σε οποιοδήποτε κλάδο βρίσκεται η σταθερή γραμμή κώδικα) Μπορείτε να διαγράψετε έναν απομακρυσμένο κλάδο χρησιμοποιώντας το μάλλον αόριστο σύνταγμα git push [remotename]: [branch]. Εάν θέλετε να διαγράψετε τον κλάδο επιδιόρθωσης διακομιστή από τον διακομιστή, εκτελέστε τα εξής: $ git push origin: serverfix Προς git@github.com: schacon / simplegit.git - [διαγραμμένο] επιδιόρθωση διακομιστή Κεραία. Δεν υπάρχουν πλέον κλάδοι στον διακομιστή σας. Ίσως θελήσετε να παρακολουθήσετε αυτήν τη σελίδα, επειδή θα χρειαστείτε αυτήν την εντολή και πιθανότατα θα ξεχάσετε τη σύνταξη. Ένας τρόπος για να θυμάστε αυτήν την εντολή είναι να θυμηθείτε τη σύνταξη git push [remotename] [localbranch]: [remotebranch] που προχωρήσαμε λίγο νωρίτερα. Εάν αφήσετε το τμήμα [localbranch], τότε βασικά λέτε, "Μην πάρετε τίποτα από την πλευρά μου και κάντε το να γίνει [remotebranch]". Έκδοση git push origin: bugfix και λειτούργησε όμορφα. Ο Σκοτ Τσάκον είχε δίκιο - θα ήθελα να ακούσω αυτήν τη σελίδα (ή ουσιαστικά το αυτί του σκύλου απαντώντας σε αυτό στο Stack Overflow). Τότε πρέπει να το εκτελέσετε σε άλλα μηχανήματα # Λήψη αλλαγών από όλα τα τηλεχειριστήρια και διαγραφή τοπικά # απομακρυσμένα διαγραμμένα κλαδιά / ετικέτες κ.λπ. # - το prune θα κάνει τη δουλειά: -; git fetch --all - prune να διαδώσει αλλαγές. | Η απάντηση του Matthew είναι εξαιρετική για την αφαίρεση απομακρυσμένων κλάδων και εκτιμώ επίσης την εξήγηση, αλλά για να κάνω μια απλή διάκριση μεταξύ των δύο εντολών: Για να αφαιρέσετε ένα τοπικό υποκατάστημα από το μηχάνημά σας: git branch -d {the_local_branch} (χρησιμοποιήστε το -D αντί να αναγκαστεί η διαγραφή του κλάδου χωρίς έλεγχο της συγχωνευμένης κατάστασης) Για να καταργήσετε έναν απομακρυσμένο κλάδο από το διακομιστή: git push origin - διαγραφή {the_remote_branch} Αναφορά: Git: Διαγραφή υποκαταστήματος (τοπικό ή απομακρυσμένο) | Οι σύντομες απαντήσεις Εάν θέλετε πιο λεπτομερείς εξηγήσεις για τις ακόλουθες εντολές, τότε δείτε τις μεγάλες απαντήσεις στην επόμενη ενότητα. Διαγραφή απομακρυσμένου κλάδου git push origin - διαγραφή # Git έκδοση 1.7.0 ή νεότερη git push origin -d # Συντομότερη έκδοση (Git 1.7.0 ή νεότερη έκδοση) προέλευση git push: # Εκδόσεις Git παλαιότερες από 1.7.0 Διαγραφή τοπικού υποκαταστήματος git branch - διαγραφή git branch -d # Μικρότερη έκδοση git branch -D # Αναγκαστική διαγραφή μη συγχωνευμένων κλάδων Διαγραφή ενός τοπικού κλάδου απομακρυσμένης παρακολούθησης git branch --delete - Remotes / git branch -dr / # Συντομότερο git fetch --prune # Διαγραφή πολλών ξεπερασμένων κλάδων απομακρυσμένης παρακολούθησης git fetch -p # Συντομότερο Η μεγάλη απάντηση: υπάρχουν τρεις διαφορετικοί κλάδοι για διαγραφή! Όταν ασχολείστε με τη διαγραφή υποκαταστημάτων τόσο τοπικά όσο και απομακρυσμένα, λάβετε υπόψη ότι υπάρχουν τρεις διαφορετικοί κλάδοι: Το τοπικό υποκατάστημα X. Ο κλάδος απομακρυσμένης προέλευσης X. Η τοπική προέλευση κλάδου απομακρυσμένης παρακολούθησης / X που παρακολουθεί τον απομακρυσμένο κλάδο X. Η αρχική αφίσα που χρησιμοποιήθηκε: git branch -rd origin / διόρθωση σφαλμάτων Το οποίο διέγραψε μόνο την τοπική προέλευση υποκαταστήματος απομακρυσμένης παρακολούθησης / διόρθωση σφαλμάτων και όχι την πραγματική αποτύπωση απομακρυσμένου κλάδου στην προέλευση. Για να διαγράψετε αυτόν τον απομακρυσμένο κλάδο, χρειάζεστε git push origin - διαγραφή διόρθωσης σφαλμάτων Επιπλέον Λεπτομέρειες Οι ακόλουθες ενότητες περιγράφουν πρόσθετες λεπτομέρειες που πρέπει να λάβετε υπόψη κατά τη διαγραφή των απομακρυσμένων και απομακρυσμένων καταστημάτων παρακολούθησης. Το πάτημα για διαγραφή απομακρυσμένων κλάδων καταργεί επίσης τους κλάδους απομακρυσμένης παρακολούθησης Σημειώστε ότι η διαγραφή του απομακρυσμένου κλάδου X από τη γραμμή εντολώνΗ χρήση ενός push git θα αφαιρέσει επίσης την τοπική προέλευση / X του κλάδου απομακρυσμένης παρακολούθησης, οπότε δεν είναι απαραίτητο να κλαδεύετε τον ξεπερασμένο κλάδο απομακρυσμένης παρακολούθησης με git fetch - prune ή git fetch -p. Ωστόσο, δεν θα ήταν κακό αν το κάνατε ούτως ή άλλως. Μπορείτε να επαληθεύσετε ότι η προέλευση κλάδου απομακρυσμένης παρακολούθησης / X διαγράφηκε επίσης εκτελώντας τα εξής: # Δείτε μόνο κλάδους απομακρυσμένης παρακολούθησης git branch - τηλεχειριστήρια git branch -r # Δείτε τόσο αυστηρά τοπικά όσο και απομακρυσμένα καταστήματα παρακολούθησης git υποκατάστημα - όλα git υποκατάστημα -α Κλάδεμα του ξεπερασμένου τοπικού καταστήματος απομακρυσμένης παρακολούθησης προέλευσης / X Εάν δεν διαγράψατε το απομακρυσμένο υποκατάστημα X από τη γραμμή εντολών (όπως παραπάνω), τότε το τοπικό αποθετήριό σας θα εξακολουθεί να περιέχει (ένα πλέον παρωχημένο) προέλευση κλάδου απομακρυσμένης παρακολούθησης / X. Αυτό μπορεί να συμβεί εάν διαγράψετε ένα απομακρυσμένο υποκατάστημα απευθείας μέσω της διεπαφής ιστού του GitHub, για παράδειγμα. Ένας τυπικός τρόπος για να αφαιρέσετε αυτούς τους ξεπερασμένους κλάδους απομακρυσμένης παρακολούθησης (δεδομένου ότι η έκδοση Git 1.6.6) είναι απλά να εκτελέσετε το git fetch με το - prune ή το συντομότερο -p. Λάβετε υπόψη ότι αυτό καταργεί όλους τους παρωχημένους τοπικούς κλάδους απομακρυσμένης παρακολούθησης για τυχόν απομακρυσμένους κλάδους που δεν υπάρχουν πλέον στο τηλεχειριστήριο: git fetch origin - δαμάσκηνο git fetch origin -p # Συντομότερο Εδώ είναι το σχετικό απόσπασμα από τις σημειώσεις έκδοσης 1.6.6 (δική μου έμφαση): Το "git fetch" έμαθε - όλες και - πολλαπλές επιλογές, για να εκτελέσετε τη λήψη πολλά αποθετήρια και - επιλογή prune για κατάργηση απομακρυσμένης παρακολούθησης κλαδιά που έπαψαν. Αυτά κάνουν "git remote update" και "git απομακρυσμένο δαμάσκηνο "λιγότερο απαραίτητο (δεν υπάρχει σχέδιο για αφαίρεση" απομακρυσμένο) ενημέρωση "ούτε" απομακρυσμένο δαμάσκηνο ", ωστόσο). Εναλλακτική λύση στο παραπάνω αυτόματο κλάδεμα για ξεπερασμένους κλάδους απομακρυσμένης παρακολούθησης Εναλλακτικά, αντί να κλαδεύετε τους ξεπερασμένους τοπικούς κλάδους απομακρυσμένης παρακολούθησης μέσω του git fetch -p, μπορείτε να αποφύγετε να κάνετε την πρόσθετη λειτουργία δικτύου απλώς αφαιρώντας με μη αυτόματο τρόπο τους κλάδους με τις σημαίες - απομακρυσμένη ή -r: git branch - διαγραφή - απομακρύνει την προέλευση / X git branch -dr origin / X # Συντομότερο Δείτε επίσης Εγχειρίδιο σελίδας git-branch (1). Εγχειρίδιο σελίδας git-fetch (1). Pro Git § 3.5 Git Branching - Απομακρυσμένα καταστήματα. | Βήματα για τη διαγραφή ενός κλάδου: Για τη διαγραφή του απομακρυσμένου κλάδου: git push origin - διαγράψτε το Για τη διαγραφή του τοπικού υποκαταστήματος, έχετε τρεις τρόπους: 1: git branch -D 2: git branch --delete --force # Ίδιο με το -D 3: git branch - διαγραφή # Σφάλμα κατά τη συγχώνευση Εξηγήστε: Εντάξει, απλώς εξηγήστε τι συμβαίνει εδώ! Απλώς κάντε git push origin - διαγραφή για να διαγράψετε μόνο το απομακρυσμένο υποκατάστημα, προσθέστε το όνομα του υποκαταστήματος στο τέλος και αυτό θα το διαγράψει και θα το ωθήσει στο απομακρυσμένο ταυτόχρονα ... Επίσης, το git branch -D, το οποίο διαγράφει μόνο το τοπικό υποκατάστημα μόνο! ... -D σημαίνει --delete --force που θα διαγράψει τον κλάδο ακόμα κι αν δεν είναι συγχωνευμένο (force delete), αλλά μπορείτε επίσης να χρησιμοποιήσετε το -d που σημαίνει - διαγραφή που ρίχνει ένα σφάλμα αντίστοιχο της κατάστασης συγχώνευσης κλάδου ... Δημιουργώ επίσης την παρακάτω εικόνα για να δείξω τα βήματα: | Μπορείτε επίσης να χρησιμοποιήσετε τα παρακάτω για να διαγράψετε τον απομακρυσμένο κλάδο git push - διαγραφή αρχικής επιδιόρθωσης διακομιστή Που κάνει το ίδιο πράγμα με προέλευση git push: επιδιόρθωση διακομιστή αλλά μπορεί να είναι πιο εύκολο να το θυμάστε. | Συμβουλή: Όταν διαγράφετε κλάδους χρησιμοποιώντας git branch -d # Διαγράφει το τοπικό υποκατάστημα ή προέλευση git push: # Διαγράφει τον απομακρυσμένο κλάδο διαγράφονται μόνο οι αναφορές. Ακόμα κι αν ο κλάδος έχει αφαιρεθεί πραγματικά στο τηλεχειριστήριο, οι αναφορές σε αυτό εξακολουθούν να υπάρχουν στα τοπικά αποθετήρια των μελών της ομάδας σας. Αυτό σημαίνει ότι για άλλα μέλη της ομάδας οι διαγραμμένοι κλάδοι εξακολουθούν να είναι ορατοί όταν κάνουν έναν κλάδο git -a. Για να επιλυθεί αυτό, τα μέλη της ομάδας σας μπορούν να κλαδέψουν τα διαγραμμένα κλαδιά με git απομακρυσμένο δαμάσκηνο <αποθετήριο> Πρόκειται συνήθως για απομακρυσμένη προέλευση δαμάσκηνου. | Εάν θέλετε να διαγράψετε ένα υποκατάστημα, πρώτα το ταμείο στο υποκατάστημα εκτός από το υποκατάστημα που θα διαγραφεί. git checkout other_than_branch_to_be_deleted Διαγραφή του τοπικού υποκαταστήματος: git branch -D branch_to_be_deleted Διαγραφή του απομακρυσμένου κλάδου: προέλευση git push - διαγραφή branch_to_be_deleted | git υποκατάστημα -D git branch -D -r origin / προέλευση git push: | Αυτό είναι απλό: Απλώς εκτελέστε την ακόλουθη εντολή: Για να διαγράψετε έναν κλάδο Git τόσο τοπικά όσο και απομακρυσμένα, πρώτα διαγράψτε τον τοπικό κλάδο χρησιμοποιώντας αυτήν την εντολή: git branch -d παράδειγμα (Εδώ είναι το όνομα του κλάδου.) Και μετά από αυτό, διαγράψτε τον απομακρυσμένο κλάδο χρησιμοποιώντας αυτήν την εντολή: git push origin: παράδειγμα | Είναι πολύ απλό: Για να διαγράψετε τον απομακρυσμένο κλάδο git push -d origin Ή προέλευση git push: Για να διαγράψετε δυναμικά το τοπικό υποκατάστημα git branch -D | Μια άλλη προσέγγιση είναι: git push - προεξοχή προέλευσης ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αυτό θα διαγράψει όλους τους απομακρυσμένους κλάδους που δεν υπάρχουν τοπικά. Ή πιο περιεκτικά, git push - καθρέφτης θα κάνει αποτελεσματικά το απομακρυσμένο αποθετήριο να μοιάζει με το τοπικό αντίγραφο του αποθετηρίου (οι τοπικές κεφαλές, τα τηλεχειριστήρια και οι ετικέτες αντικατοπτρίζονται στο τηλεχειριστήριο). | Χρησιμοποιώ τα ακόλουθα στις ρυθμίσεις Bash: ψευδώνυμο git-shoot = "git pushπροέλευση - διαγραφή " Τότε μπορείτε να καλέσετε: git-shoot branchname | Διαγραφή τοπικά: Για να διαγράψετε ένα τοπικό υποκατάστημα, μπορείτε να χρησιμοποιήσετε: git branch -d Για να διαγράψετε έναν κλάδο βίαια, χρησιμοποιήστε το -D αντί για το -d. git branch -D Διαγραφή από απόσταση: Υπάρχουν δύο επιλογές: προέλευση git push: branchname git push origin - διαγραφή branchname Θα πρότεινα να χρησιμοποιήσετε τον δεύτερο τρόπο, καθώς είναι πιο διαισθητικό. | Από τον Ιανουάριο του 2013, το GitHub συμπεριέλαβε το κουμπί Διαγραφή υποκαταστήματος δίπλα σε κάθε υποκατάστημα στη σελίδα "Καταστήματα". Σχετική ανάρτηση ιστολογίου: Δημιουργία και διαγραφή κλάδων | Εάν θέλετε να ολοκληρώσετε και τα δύο αυτά βήματα με μία μόνο εντολή, μπορείτε να δημιουργήσετε ένα ψευδώνυμο για αυτό προσθέτοντας τα παρακάτω στο ~ / .gitconfig: [ψευδώνυμο] rmbranch = "! f () {git branch -d $ {1} && git push origin - διαγραφή $ {1};}; f" Εναλλακτικά, μπορείτε να το προσθέσετε στην καθολική σας διαμόρφωση από τη γραμμή εντολών χρησιμοποιώντας git config --global alias.rmbranch \ '! f () {git branch -d $ {1} && git push origin - διαγραφή $ {1}; };φά' ΣΗΜΕΙΩΣΗ: Εάν χρησιμοποιείτε το -d (πεζά d), ο κλάδος θα διαγραφεί μόνο εάν έχει συγχωνευθεί. Για να επιβάλλετε τη διαγραφή, θα πρέπει να χρησιμοποιήσετε το -D (κεφαλαίο D). | Για να διαγράψετε το υποκατάστημα σας τοπικά και απομακρυσμένα Checkout to master branch - git checkout master Διαγράψτε τον απομακρυσμένο κλάδο σας - git push origin - διαγραφή Διαγράψτε το τοπικό σας υποκατάστημα - git branch - διαγραφή | Μπορείτε επίσης να το κάνετε αυτό χρησιμοποιώντας το git remote prune origin $ git απομακρυσμένη προέλευση Κλάδεμα προέλευσης Διεύθυνση URL: git@example.com/yourrepo.git * [κλάδεμα] προέλευσης / μερικά κλάδους Κλαδεύει και διαγράφει κλάδους απομακρυσμένης παρακολούθησης από μια λίστα git branch -r. | Εκτός από τις άλλες απαντήσεις, χρησιμοποιώ συχνά το εργαλείο git_remote_branch. Είναι μια επιπλέον εγκατάσταση, αλλά σας προσφέρει έναν βολικό τρόπο αλληλεπίδρασης με απομακρυσμένα καταστήματα. Σε αυτήν την περίπτωση, για διαγραφή: grb διαγραφή κλάδου Θεωρώ ότι χρησιμοποιώ επίσης τις εντολές δημοσίευσης και παρακολούθησης αρκετά συχνά. | Μια εντολή one-liner για διαγραφή τόσο τοπικών όσο και απομακρυσμένων: D = όνομα κλάδου; git υποκατάστημα -D $ D; προέλευση git push: $ D Ή προσθέστε το παρακάτω ψευδώνυμο στο ~ / .gitconfig. Χρήση: git kill branch-name [ψευδώνυμο] kill = "! f () {git branch -D \" $ 1 \ "; git push origin - διαγραφή \" $ 1 \ ";}; f" | Διαγραφή κλάδων Ας υποθέσουμε ότι η δουλειά μας στον κλάδο "φόρμα επαφής" έχει ολοκληρωθεί και την έχουμε ήδη ενσωματώσει στο "master". Εφόσον δεν το χρειαζόμαστε πια, μπορούμε να το διαγράψουμε (τοπικά): $ git branch -d επαφή-φόρμα Και για τη διαγραφή του απομακρυσμένου κλάδου: git push origin - διαγραφή φόρμας επαφής | Διαγραφή απομακρυσμένου κλάδου προέλευση git push: Διαγραφή τοπικού υποκαταστήματος git branch -D Διαγραφή βημάτων τοπικού κλάδου: ολοκλήρωση αγοράς σε άλλο κατάστημα διαγράψτε το τοπικό υποκατάστημα | Απλώς πείτε: git branch -d προέλευση git push: | git push origin - διαγραφή <όνομα κλάδου> είναι πιο εύκολο να το θυμάστε git push origin: branchName | Τώρα μπορείτε να το κάνετε με την εφαρμογή GitHub Desktop. Μετά την εκκίνηση της εφαρμογής Κάντε κλικ στο έργο που περιέχει τον κλάδο Μεταβείτε στον κλάδο που θέλετε να διαγράψετε Από το μενού "Branch", επιλέξτε "Κατάργηση δημοσίευσης ...", για να διαγραφεί το υποκατάστημα από τους διακομιστές GitHub. Από το μενού "Branch", επιλέξτε "Delete" branch_name "... ', για να διαγραφεί το υποκατάστημα από το τοπικό μηχάνημά σας (AKA το μηχάνημα στο οποίο εργάζεστε αυτήν τη στιγμή) | Για τοπική διαγραφή - (κανονική) git branch -d my_branch Εάν το υποκατάστημα σας βρίσκεται σε πρόοδο αναδιάρθρωσης / συγχώνευσης και αυτό δεν έγινε σωστά, αυτό σημαίνει ότι θα λάβετε ένα σφάλμα, Αναδιάταξη / Συγχώνευση σε εξέλιξη, οπότε σε αυτήν την περίπτωση, δεν θα μπορείτε να διαγράψετε τον κλάδο σας. Οπότε είτε πρέπει να λύσετε την αναδιάταξη / συγχώνευση. Διαφορετικά, μπορείτε να κάνετε αναγκαστική διαγραφή χρησιμοποιώντας, git branch -D my_branch Για διαγραφή στο απομακρυσμένο: git push - διαγραφή προέλευσης my_branch Μπορείτε να κάνετε το ίδιο χρησιμοποιώντας: git push origin: my_branch # Εύκολο να θυμάστε και οι δύο θα κάνουν το ίδιο. ΓΡΑΦΙΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ: | Αυτό δεν θα λειτουργήσει εάν έχετε μια ετικέτα με το ίδιο όνομα με τον κλάδο στο τηλεχειριστήριο: $ git push origin: κλάδος-ή-ετικέτα-όνομα σφάλμα: το dst refspec υποκατάστημα-ή-ετικέτα-όνομα ταιριάζει με περισσότερα από ένα. σφάλμα: απέτυχε να προωθήσει ορισμένες αναφορές στο 'git@github.com: SomeName / some-repo.git' Σε αυτήν την περίπτωση πρέπει να καθορίσετε ότι θέλετε να διαγράψετε τον κλάδο και όχι την ετικέτα: προέλευση git push: refs / heads / branch-or-tag-name Ομοίως, για να διαγράψετε την ετικέτα αντί για τον κλάδο που θα χρησιμοποιούσατε: προέλευση git push: refs / tags / branch-or-tag-name | Πολλές από τις άλλες απαντήσεις θα οδηγήσουν σε σφάλματα / προειδοποιήσεις. Αυτή η προσέγγιση είναι σχετικά ανόητη αν και μπορεί να χρειαστείτε ακόμα το git branch -D branch_to_delete εάν δεν είναι πλήρως συγχωνευμένη σε κάποιο_άλλο_κατάστημα, για παράδειγμα. git checkout some_other_branch προέλευση git push: branch_to_delete git branch -d branch_to_delete Δεν απαιτείται απομακρυσμένο κλάδεμα εάν διαγράψατε τον απομακρυσμένο κλάδο. Χρησιμοποιείται μόνο για τη λήψη των πιο ενημερωμένων τηλεχειριστηρίων σε ένα αποθετήριο που παρακολουθείτε. Παρατήρησα ότι το git fetch θα προσθέσει τηλεχειριστήρια, όχι θα τα αφαιρέσει. Ακολουθεί ένα παράδειγμα για το πότε η απομακρυσμένη προέλευση του git θα κάνει κάτι: Χρήστης Ακάνει τα παραπάνω βήματα. Ο χρήστης B θα εκτελούσε τις ακόλουθες εντολές για να δει τα πιο ενημερωμένα απομακρυσμένα κλαδιά: σκατά git απομακρυσμένη προέλευση δαμάσκηνο git branch -r | Βαρέθηκα από το Google για αυτήν την απάντηση, οπότε πήρα μια παρόμοια προσέγγιση με την απάντηση που δημοσίευσε ο crizCraig νωρίτερα. Πρόσθεσα τα ακόλουθα στο προφίλ μου στο Bash: συνάρτηση gitdelete () { git push origin - διαγράψτε $ 1 git υποκατάστημα -D $ 1 } Στη συνέχεια, κάθε φορά που τελειώνω με έναν κλάδο (για παράδειγμα συγχωνεύεται σε κύριο), εκτελώ τα ακόλουθα στο τερματικό μου: gitdelete my-branch-name ... το οποίο στη συνέχεια διαγράφει το my-branch-name από την προέλευση, καθώς και τοπικά. | Πριν την εκτέλεση git branch - διαγραφή βεβαιωθείτε ότι έχετε καθορίσει πρώτα ποιο είναι το ακριβές όνομα του απομακρυσμένου κλάδου εκτελώντας: git ls-απομακρυσμένο Αυτό θα σας πει τι πρέπει να εισαγάγετε ακριβώς για την τιμή . (το υποκατάστημα είναι πεζικό!) | Χρήση: git push origin: bugfix # Διαγράφει τον απομακρυσμένο κλάδο git branch -d bugfix # Πρέπει να διαγράψετε το τοπικό υποκατάστημα με μη αυτόματο τρόπο Εάν είστε βέβαιοι ότι θέλετε να το διαγράψετε, εκτελέστε το git branch -D bugfix Τώρα για να καθαρίσετε τα διαγραμμένα απομακρυσμένα κλαδιά εκτελούνται git απομακρυσμένη προέλευση δαμάσκηνο | 1 2 Επόμενο Πολύ ενεργή ερώτηση. Κερδίστε 10 φήμη για να απαντήσετε σε αυτήν την ερώτηση. Η απαίτηση φήμης συμβάλλει στην προστασία αυτής της ερώτησης από ανεπιθύμητες ενέργειες και μη απαντήσεις. Δεν είναι η απάντηση που ψάχνετε; Περιηγηθείτε σε άλλες ερωτήσεις με ετικέτα git version-control git-branch git-push git-remote ή κάντε τη δική σας ερώτηση.